
@keyframes vertical-bounce {
	0% {
		transform: translateY(0%);
	}
	40% {
		transform: translateY(0%);
	}
	80% {
		transform: translateY(20%);
	}
	100% {
		transform: translateY(0%);
	}
}

section.banner span.scroll-indicator {
	position: absolute;
	/* bottom offset + height of indicator */
	bottom: calc(1.4rem + 2rem);
  left: 50%;
  content: "";
  display: block;
  width: 2rem;
  height: 2rem;
  background: var(--color-text);
	mask-size: cover;
	mask-image: var(--scroll-icon);
	opacity: 0.7;
	transform: translateX(-50%);
	animation: vertical-bounce 1.2s both infinite;
}

section.banner {
	min-width: 100vw;
	min-height: 100vh;
	padding-bottom: 3rem;
	display: flex;
	align-items: center;
	justify-content:center;
	position: relative;
}
section.banner::before {
	background-image: linear-gradient(315deg, var(--color-accent1), var(--color-accent2));
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - 3rem), 0% 100%);
}
section.banner::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-bg);
	z-index: -1;
	mask-image: var(--hex-pattern);
	mask-repeat: repeat;
	opacity: 0.2;
	clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - 3rem), 0% 100%);
}

section.banner article {
	margin: 0.4rem;
	padding: 0.8rem;
	position: relative;
}

section.banner article h1 {
	margin: 0.8rem;
	text-align: center;
	/* XXX: apparently good approximation of width of the title content without wrapping it */
	font-size: calc(min(80vw, 600px) / 22 * 1.5);
}
section.banner article p {
	margin: 0.4rem;
}

section.banner article .branding {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0.4rem;
	flex-direction: row-reverse;
}
section.banner article .branding h2 {
	max-width: calc(100% - 5rem);
	margin: 0;
	padding: 0;
}
section.banner article .branding img {
	width: 5rem;
	height: 5rem;
	transform: translateY(-0.4rem);
}

@media (orientation: landscape) {
	section.banner article {
		max-width: 600px;
	}
}

section.cards {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0.4rem;
	margin-top: 2.4rem;
}
section.cards article {
	border-radius: 0.4rem;
	background: var(--color-accent0);
	padding: 0.8rem;
}

section.cards article.countdown-wrapper:has(#countdown:empty) {
	/* Hide the countdown card if no countdowns are available */
	display: none;
}
section.cards article.countdown-wrapper #countdown {
	/* get rid of list base theme */
	list-style: none;
	padding: 0;
	margin: 0;
}


/* NEWS SECTION */

section#news-preview {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	margin: 0.8rem;
	margin-top: 2rem;
}
section#news-preview h1 {
	margin: 0;
	padding: 0;
	width: 100%;
	text-align: center;
}
section#news-preview ul.news-list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	gap: 0.4rem;
	align-items: center;
	justify-content: center;
	width: 100%;
	list-style: none;
	max-width: 660px;
}
section#news-preview ul.news-list li {
	width: 100%;
}
section#news-preview ul.news-list li a {
	display: block;
}

section#news-preview .view-all-news {
	padding: 0.4rem;
	border-radius: 0.4rem;
	border: 2px solid var(--color-text);
	background-image: linear-gradient(transparent 50%, var(--color-text) 50%, var(--color-text) 100%);
	background-size: 100% 200%;
	background-position: 0 0%;
	transition: background-position .1s ease-in-out, color .1s;
	color: var(--color-text);
	text-decoration: none;
}
section#news-preview .view-all-news:hover {
	background-position: 0 100%;
	color: var(--color-bg);
}


/* FAQ SECTION */

section#faq {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0.8rem;
	margin-top: 2rem;
}
section#faq h1 {
	text-align: center;
	margin: 0;
	padding: 0;
}
section#faq article {
	margin: 0.4rem;
	background: var(--color-accent0);
	border-radius: 0.4rem;
	max-width: 660px;
}
section#faq details {
	border: 0.2rem solid transparent;
	border-radius: 0.4rem;
}
section#faq details:hover,
section#faq details[open] {
	border: 0.2rem solid var(--color-accent1);
}
section#faq details summary {
	font-weight: 600;
	padding: 0.4rem;
	background: transparent;
}
section#faq details:hover summary,
section#faq details[open] summary {
	background: var(--color-accent1) !important;
}
section#faq details .content {
	margin: 0.4rem;
}

section#faq a.local-link {
	display: inline-block;
	width: 0.8rem;
	height: 0.8rem;
	background: var(--color-text);
	mask-size: cover;
	mask-image: var(--link-icon);
	opacity: 0.6;
	transition: opacity .2s;
}
section#faq a.local-link:hover {
	opacity: 0.8;
}
section#faq details:target summary {
	animation: 2s 1 both blink;
}

@keyframes blink {
	0% {
		background: transparent;
	}
	10% {
		background: var(--color-accent1);
	}
	20% {
		background: transparent;
	}
	40% {
		background: transparent;
	}
	50% {
		background: var(--color-accent1);
	}
	60% {
		background: transparent;
	}
	80% {
		background: transparent;
	}
	90% {
		background: var(--color-accent1);
	}
	100% {
		background: transparent;
	}
}
